#include <stdlib.h>
#include <stdio.h>

typedef char DataType;
typedef struct Node
{
	DataType data;
	struct Node* leftChild;
	struct Node* rightChild;
}BiTreeNode;
void create_tree(BiTreeNode** root_pp, char* pre_order_seq, int num_elements);
void pre_order_traverse(BiTreeNode* t, void visit(DataType item));
void in_order_traverse(BiTreeNode* t, void visit(DataType item));
void post_order_traverse(BiTreeNode* t, void visit(DataType item));
BiTreeNode* search(BiTreeNode* root, DataType x);
void Visit(DataType item);
void destroy(BiTreeNode** root);
